/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package control;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;
import model.Ansat;
import model.Faktura;
import model.FaktureretVare;
import view.GUI;

/**
 *
 * @author Morten J, Morten B & Jonas
 */
public class FakturaHandler {

    public static Faktura faktura;
    private String sql;

    public FakturaHandler() {
        sql = "";
    }

    public void CreateFaktura(int fakturaNr, Ansat ansat, ArrayList<FaktureretVare> faktureretVareliste) {
        faktura = new Faktura(fakturaNr, ansat, faktureretVareliste);
    }

    public void saveInvoiceToDB() {
        try {
            sql = "INSERT INTO faktura VALUES (" + faktura.getFakturaNr() + ", " + faktura.getDato() + ", " + AnsatHandler.getAktuelAnsat().getAnsatNr() + ", " + faktura.getBetalingsType() + ", " + faktura.isMedlem() + ")";
            Main.getDbConnection().insert(sql);
            for (FaktureretVare fV : faktura.getFaktureretVareListe()) {
                sql = "INSERT into faktureretVare VALUES (" + faktura.getFakturaNr() + ", " + fV.getVare().getVareNr() + ", " + fV.getAntal() + ", " + fV.getPrisHistorikKr() + ", " + fV.getPrisHistorikEu() + ")";
                Main.getDbConnection().insert(sql);
            }
            GUI.getGuiHandler().setFeedbackMessage("Fakturanummer: " + faktura.getFakturaNr() + " er lagret", Main.getGREEN_COLOR());
        } catch (SQLException ex) {
            GUI.getGuiHandler().setFeedbackMessage(" ved lagring af faktura");
        }
    }

    public void saveInvoiceToText() {
        try {
            String filename = "Fakturanummer. " + faktura.getFakturaNr();
            File file = new File(filename + ".doc");
            try (PrintWriter pw = new PrintWriter(file)) {
                pw.print("Museum Sydøstdanmark\n\n" + faktura.toString());
            }
        } catch (IOException ex) {
            GUI.getGuiHandler().setFeedbackMessage("Det var ikke muligt at gemme fakturaen på computeren.", Main.getRED_COLOR());
        }
    }

    public void setBetalingsType(int betalingsType) {
        faktura.setBetalingsType(betalingsType);
    }

    public int getBetalingsType() {
        return faktura.getBetalingsType();
    }

    public void setMedlem(boolean medlem) {
        faktura.setMedlem(medlem);
    }

    public boolean isMedlem() {
        return faktura.isMedlem();
    }

    public void setDato(long dato) {
        faktura.setDato(dato);
    }

    public String getDatoAsDate() {
        return faktura.getDatoAsDate();
    }

    public long getDato() {
        return faktura.getDato();
    }
}
